package com.phiture.erp.basic.core.pojo.vo;

import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import java.math.BigDecimal;
import java.time.LocalDateTime;

@Schema(description = "管理后台 - 物料库存属性 Response VO")
@Data
@ExcelIgnoreUnannotated
public class ErpMaterialInventoryRespVO {

    @Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "19785")
    @ExcelProperty("编号")
    private Long id;

    @Schema(description = "物料状态(0:未核准 1:核准 2:禁用 3:已删除)", example = "1")
    @ExcelProperty("物料状态(0:未核准 1:核准 2:禁用 3:已删除)")
    private Boolean status;

    @Schema(description = "禁用组织")
    @ExcelProperty("禁用组织")
    private String freezeOrgUnit;

    @Schema(description = "物料ID", example = "25108")
    @ExcelProperty("物料ID")
    private Long materialId;

    @Schema(description = "安全库存")
    @ExcelProperty("安全库存")
    private BigDecimal qtySafety;

    @Schema(description = "允许负库存")
    @ExcelProperty("允许负库存")
    private Integer isNegative;

    @Schema(description = "使用批号管理")
    @ExcelProperty("使用批号管理")
    private Integer isBatchNo;

    @Schema(description = "使用序列号管理")
    @ExcelProperty("使用序列号管理")
    private Integer isSequenceNo;

    @Schema(description = "批次管理")
    @ExcelProperty("批次管理")
    private Integer isLotNumber;

    @Schema(description = "条码管理")
    @ExcelProperty("条码管理")
    private Integer isBarcode;

    @Schema(description = "出库优先方式(1:按批次号顺序 2:按批次先进先出 3:按批次后进先出 4:近效期)")
    @ExcelProperty("出库优先方式(1:按批次号顺序 2:按批次先进先出 3:按批次后进先出 4:近效期)")
    private Integer issuePriorityMode;

    @Schema(description = "计量单位", example = "2306")
    @ExcelProperty("计量单位")
    private Long unitId;

    @Schema(description = "保质期管理", example = "3468")
    @ExcelProperty("保质期管理")
    private Integer isPeriodValid;

    @Schema(description = "保质期", example = "21809")
    @ExcelProperty("保质期")
    private Integer periodValid;

    @Schema(description = "保质期单位(1:年 2:月 3:日)")
    @ExcelProperty("保质期单位(1:年 2:月 3:日)")
    private Integer periodValidUnit;

    @Schema(description = "采购提前期(天)")
    @ExcelProperty("采购提前期(天)")
    private Integer purchasingAheadDate;

    @Schema(description = "默认仓库", example = "22682")
    @ExcelProperty("默认仓库")
    private Long defaultWarehouseId;

    @Schema(description = "是否检验")
    @ExcelProperty("是否检验")
    private Integer isCheck;

    @Schema(description = "质检组织", example = "18496")
    @ExcelProperty("质检组织")
    private Long qualityOrgId;

    @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
    @ExcelProperty("创建时间")
    private LocalDateTime createTime;

}